package com.hmy.contract.bo.response.contract;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hmy.ccp.common.response.BaseResponse;
import com.hmy.contract.bo.response.order.OrderDetailResponse;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * @author seven.qi 齐胜南
 * @version 1.0
 * @description 合同列表分页查询出参
 * @date 2023/12/20 16:13
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("合同列表分页查询出参")
public class ContractPageResponse extends BaseResponse {

    /**
     * 合同id
     */
    private Long contractId;

    /**
     * 订单id
     */
    private Long orderId;
    /**
     * 订单编号-业务编号
     */
    private String orderNo;
    /**
     * 合同名称
     */
    private String contractName;
    /**
     * 合同编号-业务编号
     */
    private String contractNo;
    /**
     * 工程名称
     */
    private String projectName;
    /**
     * 订单详情信息，json数据，包括工程概况、设备需求、首次进场信息
     */
    private OrderDetailResponse orderDetail;
    /**
     * 出租方名称
     */
    private String lessorName;
    /**
     * 出租方信息，json数据，包括出租方、地址、邮编、指定收款账号、开户行
     */
    private String lessorInfo;
    /**
     * 客户id
     */
    private Long customerId;
    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 客户身份证号
     */
    private String customerIdCardNo;

    /**
     * 客户手机号
     */
    private String customerPhone;
    /**
     * 客户详细信息
     */
    private CustomerExtensionResponse customerDetail;
    /**
     * 授权人信息，json数组，包括姓名、身份证号、联系电话
     */
    private String authorizerInfo;
    /**
     * 销售经理id
     */
    private Long saleManagerId;
    /**
     * 销售经理姓名
     */
    private String saleManagerName;
    /**
     * 部门id
     */
    private Long deptId;
    /**
     * 合同类型，纸质合同，电子合同
     */
    private Integer contractType;
    /**
     * 合同任务id，当前为法大大id
     */
    private String contractTaskId;
    /**
     * 合同文件名称
     */
    private String contractFileName;
    /**
     * 合同文件地址
     */
    private String contractFileUrl;
    /**
     * 合同签署完成文件地址
     */
    private String contractSignFileUrl;
    /**
     * 合同签署链接
     */
    private String contractSignTaskUrl;
    /**
     * 合同状态，2位数字
     */
    private Integer status;
    /**
     * 关联任务id
     */
    private Long relationId;
    /**
     * 关联任务编号
     */
    private String relationNo;
    /**
     * 合同业务类型，进场单、退场单、补充协议等
     */
    private Integer businessType;
    /**
     * 合同业务数据
     */
//    private String templateDataDetailExtension;
    /**
     * 合同参与方数据
     */
//    private String actorDetailExtension;
    /**
     * 关联合同详情数据，json
     */
//    private String relationContractDetailExtension;
    /**
     * 是否含有增补,0-不含，1-含
     */
    private Integer hasSupply;
    /**
     * 增补订单数量
     */
    private Integer supplyCount;
    /**
     * 合同签署时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime signTime;
    /**
     * 流程id
     */
    private String processId;
    /**
     * 扩展字段
     */
//    private String extendedFields;
    /**
     * 合同文件模式，1-法大大生成，2-文件
     */
//    private Integer contractFileModel;

    /**
     * 合同状态描述
     */
    private String statusDesc;
    /**
     * 合同类型描述
     */
    private String contractTypeDesc;
    /**
     * 审批原因
     */
    private String approvalComment;
    /**
     * 创建人
     */
    private String creatorName;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;
    /**
     * 工作流流程实例id
     */
    private String processInstanceId;

    private String contractProcessInstanceId;

    /**
     * 合同状态csstag
     */
    private String contractStatusCssTag;

}
